package q1282_groupThePeople;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Solution_2 {
    /*
    更快的方法：
    每次遇到map中一个对应key的list被放满 就直接把它放到答案中 然后移除该key
     */
    public List<List<Integer>> groupThePeople(int[] groupSizes) {
        Map<Integer, List<Integer>> map = new HashMap<>();
        List<List<Integer>> ans = new ArrayList<>();
        for (int i = 0; i < groupSizes.length; i++) {
            int cur = groupSizes[i];
            if (!map.containsKey(cur)) {
                map.put(cur, new ArrayList<Integer>());
            }
            map.get(cur).add(i);
            if (map.get(cur).size() == cur) {
                ans.add(map.get(cur));
                map.remove(cur);
            }
        }
        return ans;
    }
}
